물리삭제와 논리삭제

물리삭제와 논리삭제

DB에서 데이터를 삭제하는 방법에는 물리삭제논리삭제 가 있다.

물리삭제

SQL의 delete 명령어 사용해서 직접 데이터 삭제하는 방법

말 그대로 진짜 삭제한다.

논리삭제

UPDATE 명령어를 사용해서 삭제 여부를 알 수 있는 컬럼에 데이터가 삭제되었다는 값을 넣어서 표현

이게 그 deleted 칼럼에 true, false로 삭제되었는지 표시하는 방법이다.
즉, 실제로 삭제되는게 아니라 삭제된 척 하는 것이다.

장점

단점

비교 예시

id 이름 번호 삭제여부
1 이찬호 010-1234-1234 0
2 김다빈 010-1234-5678 0

물리삭제의 경우

delete from user where id=2 를 통해서 삭제

결과

id 이름 번호 삭제여부
1 이찬호 010-1234-1234 0

논리 삭제의 경우

update user set 삭제여부=1 where id=2 를 통해 업데이트

결과

id 이름 번호 삭제여부
1 이찬호 010-1234-1234 0
2 김다빈 010-1234-5678 1

뭘 선택해야 할까

정답은 없다.
삭제 후에도 필요해질 수도 있다고 생각되는 정보는 논리삭제로 필요하지 않은 정보는 물리삭제로 처리하는게 좋을 것 같다.

회원탈퇴에 관한 것은 좀 더 생각해볼 거리가 많은 것 같아서 따로 정리하였다.
DB 회원탈퇴처리

reference